Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Інститут комп’ютерних наук та інформаційних технологій
Кафедра ПЗ
ЗВІТ
до лабораторної роботи №2
з дисципліни «Бази даних (частина ІІ)»
на тему: «Ознайомлення із мовою Transact-SQL»
Лектор:
доцент кафедри ПЗ
Павич Н. Я.
Мета: Навчитися використовувати T-SQL, DML та транзакції для зміни даних та управління запитами в SQL Server 2008.
Завдання
1.Створити базу даних з наступною архітектурою таблиць:
- Product (maker, model, type)- PC (code, model, speed, ram, hd, cd, price)- Laptop (code, model, speed, ram, hd, screen, price)- Printer (code, model, color, type, price)
2.Всі новостворені об’єкти бази даних помістити у наперед створену схему бази даних.
3.Внести відповідні дані у таблиці.
4.Використовуючи DML, видалити всі блокноти, що випускаються виробниками, які не випускають принтери.
5.Продемонструвати використання інструкцій для роботи із транзакціями та обробки помилок, використовуючи вірний та хибний запит.
6.Вивести відповідні повідомлення про статус виконання запиту.
Хід роботи
1.Створення бази даних і чотирьох таблиць: Product, PC, Laptop, Printer. Відповідні SQL скрипти:
USE [Librarians_Database]
GO
CREATE TABLE [ComputerFirm].[MyProduct](
[maker] [varchar](10) PRIMARY KEY,
[model] [varchar](50) NOT NULL,
[type] [varchar](50) NOT NULL
)
GO
USE [Librarians_Database]
GO
CREATE TABLE [ComputerFirm].[MyPC](
[code] [int] PRIMARY KEY,
[model] [varchar](50) NOT NULL,
[speed] [smallint] NOT NULL,
[ram] [smallint] NOT NULL,
[hd] [real] NOT NULL,
[cd] [varchar](10) NOT NULL,
[price] [money] NULL
)
GO
USE [Librarians_Database]
GO
CREATE TABLE [ComputerFirm].[MyLaptop](
[code] [int] PRIMARY KEY,
[model] [varchar](50) NOT NULL,
[speed] [smallint] NOT NULL,
[ram] [smallint] NOT NULL,
[hd] [real] NOT NULL,
[price] [money] NULL,
[screen] [tinyint] NOT NULL
)
GO
USE [Librarians_Database]
GO
CREATE TABLE [ComputerFirm].[MyPrinter](
[code] [int] PRIMARY KEY,
[model] [varchar](50) NOT NULL,
[color] [char](1) NOT NULL,
[type] [varchar](10) NOT NULL,
[price] [money] NULL
)
GO
Вигляд таблиць та встановлених зв’язків на діаграмі:
2. Створення схеми бази даних:
USE [Librarians_Database]
GO
CREATE SCHEMA [ComputerFirm] AUTHORIZATION [User]
GO
Задання створеної схеми схемою за замовчуванням для даного користувача. Після цього всі новостворені таблиці поміщатимуться в цю схему:
USE [Librarians_Database]
GO
ALTER USER [UserKlyovan] WITH DEFAULT_SCHEMA=[ComputerFirm]
GO
3. Внесення відповідних даних у таблиці:
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('Samsung','1428','PC');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('Samsung','1429','PC');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('Samsung','1621','Laptop');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('HP','3734','Laptop');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('HP','3992','Printer');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('SomeFirm','7144','PC');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('SomeFirm','7321','Laptop');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyProduct]
VALUES ('SomeFirm','7979','Printer');
INSERT INTO [Librarians_Database].[ComputerFirm].[MyPC]
VALUES(40,'1428',1200,512,160,'52x',250);
INSERT INTO [Librarians_Database].[ComputerFirm].[MyPC]
VALUES (41,'1428',1200,1024,500,'52x',350);
INSERT INTO [Librarians_Database].[ComputerFirm].[MyPC]
VALUES (84,'7144',1500,2048,320,'52x',500);
INSERT INTO [Librarians_Database].[ComputerFirm].[MyLaptop]
VALUES(44,'1621',1200,512,160,400,15);
INSERT INTO [Librarians_Database].[ComputerFirm].[MyLaptop]
VALUES (72,'3734',800,256,80,250,14);
INSERT INTO [Librarians_Database].[ComputerFirm].[MyLaptop]
VALUES (87,'7321',1500,1024,240,NULL,15);
INSERT INTO [Librarians_Database].[ComputerF...